package com.quectel.constant.core.devicepatrol;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author zhangheng
 * @email nolan.zhang@quectel.com
 * @date 2022/5/16 17:26
 */
public class DevicePatrolTaskConstants {

    /*
    消息推送模板
     */
    /**
     * APP消息推送模板
     */
    public static final String APP_PUSH_MSG_TEMPLATE = "设备巡检任务名称:%s|执行日期:%s|执行时间:%s";

    /*
    巡检执行状态
     */

    @AllArgsConstructor
    public enum TasksStatusEnum {
        /**
         * 未执行
         */
        STATUS_UNEXECUTED((byte) 0),
        /**
         * 执行中
         */
        STATUS_EXECUTING((byte) 1),

        /**
         * 已执行
         */
        STATUS_EXECUTED((byte) 2),

        /**
         * 漏检
         */
        STATUS_MISSED_DETECTION((byte) 3);
        @Getter
        private final Byte status;
    }

          /*
     巡检任务是否推送
     */

    @AllArgsConstructor
    public enum IsPushedEnum {

        /**
         * 未推送
         */
        IS_NOT_PUSHED((byte) 0),
        /**
         * 已推送
         */
        IS_PUSHED((byte) 1);


        @Getter
        private final Byte isPushed;
    }

        /*
            查询巡检任务
     */

    @AllArgsConstructor
    public enum StatusFlagEnum {
        /**
         * 未执行 查询时间小于任务开始时间
         */
        STATUS_UNEXECUTED((byte) 0),

        /**
         * 执行中 查询时间大于开始时间 小于结束时间 状态是未执行或者执行中
         */
        STATUS_EXECUTING((byte) 1),

        /**
         * 已执行 状态为已执行或者漏检
         */
        STATUS_EXECUTED((byte) 2);

        @Getter
        private final Byte status;
    }
    /*
       字符串常量
     */

    /**
     * emp查询标识
     */
    public static final String EMP_QUERY = "empQuery";
    /**
     * emp 查询用户ID标识
     */
    public static final String EMP_QUERY_USER_ID = "empQueryUserId";
    /**
     * 查询时间
     */
    public static final String QUERY_TIME = "queryTime";
    /*
     * 条件查询
     */
    /**
     * 创建时间-起始时间
     */
    public static final String CREATE_TIME_BEGIN = "createTimeBegin";
    /**
     * 创建时间-结束时间
     */
    public static final String CREATE_TIME_END = "createTimeEnd";

    /**
     * 执行开始时间-起始时间
     */
    public static final String EXEC_START_TIME_BEGIN = "execStartTimeBegin";
    /**
     * 执行开始时间-结束时间
     */
    public static final String EXEC_STRAT_TIME_END = "execStartTimeEnd";

    /**
     * 执行结束时间-起始时间
     */
    public static final String EXEC_END_TIME_BEGIN = "execEndTimeBegin";
    /**
     * 执行结束时间-结束时间
     */
    public static final String EXEC_END_TIME_END = "execEndTimeEnd";
    /**
     * 根据dayPeriod格式化日期模板 将日期和时间转换为yyyy-MM-dd HH:mm:ss 格式的日期
     * 使用方法 String.format(DevicePatrolTaskConstants.EXEC_TIME_TEMPLATE,dateStr,split[0]);
     * dateStr 为yyyy-MM-dd日期字符串
     * split[0] 为HH:mm的时间字符串
     */
    public static final String EXEC_TIME_TEMPLATE = "%s %s:00";

    public static void main(String[] args) {
        System.out.println(String.format(DevicePatrolTaskConstants.EXEC_TIME_TEMPLATE, "2022-06-15", "16:00"));
    }

}
